package Q213;

/**
 * 打家劫舍2
 * @author 23737
 * @time 2021.11.30
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(new Solution().rob(new int[]{2, 3, 2}));
    }
}

/**
 * 这道题成环了，难度有点大
 * 但是我们只考虑 第一个房子~倒数第二个房子之间的情况  和  第二个房子~最后一个房子之间的情况
 */
class Solution {
    public int rob(int[] nums) {
        if(nums.length == 0){
            return 0;
        }
        if(nums.length == 1){
            return nums[0];
        }
        return Math.max(helper(nums,0,nums.length-1),helper(nums,1,nums.length));
    }

    private int helper(int[] nums, int i, int i1) {
        int first = 0,temp = 0,second = 0;
        for (int j = i; j < i1; j++) {
            temp = second;
            second = Math.max(temp,first+nums[j]);
            first = temp;
        }
        return second;
    }
}